home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C++ / Applications / Nuntius 1.2 / src / Nuntius / UBufferedFileStream.h < prev    next >
Encoding:
Text File  |  1994-02-20  |  1.0 KB  |  37 lines  |  [TEXT/MPS ]

  1. // Copyright © 1993 Peter Speck (speck@dat.ruc.dk).  All rights reserved.
  2. // UBufferedFileStream.h
  3.  
  4. #define __UBUFFEREDFILESTREAM__
  5.  
  6. class TBufferedFileStream : public TStream
  7. {
  8.     public:
  9.         virtual pascal long GetPosition();
  10.         virtual pascal void SetPosition(long newPosition);
  11.     
  12.         virtual pascal long GetSize();
  13.         virtual pascal void SetSize(long newSize);
  14.     
  15.         virtual pascal void ReadBytes(void* p, long count); 
  16.         virtual pascal void WriteBytes(const void* p, long count); 
  17.  
  18.         virtual void FlushBuffers();
  19.         
  20.         virtual pascal void Initialize();
  21.         pascal void IBufferedFileStream(TFile* itsFile, long inBufferSize, long outBufferSize);
  22.         virtual pascal void Free();
  23.     private:
  24.         TFile *fFile;
  25.         long fInBufferSize, fOutBufferSize;
  26.         Ptr fInBufferP, fOutBufferP;
  27.         Ptr fInBufferPosP, fOutBufferPosP;
  28.         long fBytesInInBuffer, fBytesInOutBuffer;
  29.         ParamBlockRec *fPBP;
  30.         
  31.         void FlushOutputBuffer();
  32.         void FlushInputBuffer();
  33.         void FillInputBuffer();
  34. };
  35.  
  36. TBufferedFileStream *NewBufferedFileStream(TFile* itsFile, long inBufferSize, long outBufferSize);
  37.